/**
 * 公告数据接口定义
 */
export interface Announcement {
  /**
   * 公告ID
   */
  id: number
  
  /**
   * 创建时间
   */
  createTime: string
  
  /**
   * 更新时间
   */
  updateTime: string
  
  /**
   * 公告内容
   */
  announcementContent: string
  
  /**
   * 公告标题
   */
  announcementTitle: string
  
  /**
   * 公告类型
   */
  announcementType: string
  
  /**
   * 创建人
   */
  createBy: string | null
  
  /**
   * 数据状态
   */
  dataStatus: number
  
  /**
   * 数据版本
   */
  dataVersion: number
}

/**
 * 分页查询结果接口
 */
export interface PaginationResult<T> {
  /**
   * 记录列表
   */
  records: T[]
  
  /**
   * 总数
   */
  total: number
  
  /**
   * 每页数量
   */
  size: number
  
  /**
   * 当前页
   */
  current: number
  
  /**
   * 排序规则
   */
  orders: any[]
  
  /**
   * 是否优化计数SQL
   */
  optimizeCountSql: boolean
  
  /**
   * 是否搜索计数
   */
  searchCount: boolean
  
  /**
   * 是否优化连接计数SQL
   */
  optimizeJoinOfCountSql: boolean
  
  /**
   * 最大限制
   */
  maxLimit: number | null
  
  /**
   * 计数ID
   */
  countId: number | null
  
  /**
   * 总页数
   */
  pages: number
}

/**
 * API响应结果接口
 */
export interface ApiResponse<T> {
  /**
   * 操作字符串
   */
  operateStr: string
  
  /**
   * 状态码
   */
  code: number
  
  /**
   * 是否显示消息
   */
  isShowMsg: boolean
  
  /**
   * 响应数据
   */
  data: T
}

/**
 * 公告搜索参数接口
 */
export interface AnnouncementSearchParams {
  /**
   * 公告内容
   */
  announcementContent?: string
  
  /**
   * 公告标题
   */
  announcementTitle?: string
  
  /**
   * 公告类型
   */
  announcementType?: string
}

/**
 * 添加公告参数接口
 */
export interface AddAnnouncementParams {
  /**
   * 公告内容
   */
  announcementContent: string
  
  /**
   * 公告标题
   */
  announcementTitle: string
  
  /**
   * 公告类型
   */
  announcementType: string
}

/**
 * 删除公告参数接口
 */
export interface DeleteAnnouncementParams {
  /**
   * ID列表
   */
  list: number[]
}